// subpkg_settle/pages/settle.js
const app = getApp()
const date = new Date()
let strmonth = date.getMonth() + 1
let strDate = date.getDate()

if(strmonth < 10) strmonth = `0${strmonth}`
if(strDate < 10) strDate = `0${strDate}`

Page({
  bindDateChange(e) {
    this.setData({
      selectDate: e.detail.value
    })
  },
  radioChange(e){
    console.log(e.detail.value);
    this.setData({
      gender: e.detail.value
    })
  },
  // 验证手机号是否合法
  isMobilePhone(phone) {
    const pattern = /^1[3456789]\d{9}$/;
    return pattern.test(phone);
  },
  // 支付
  onPay(e){
    const formData = e.detail.value
    if(!this.isMobilePhone(formData.guestNumber)){
      wx.showModal({
        title: '提示',
        content: `手机号填写有误`,
        showCancel: false
      })
      return
    }
    // 拍摄人信息不能为空
    for(const key in formData){
      if(!formData[key]){
        wx.showModal({
          title: '提示',
          content: `拍摄人信息不能为空`,
          showCancel: false
        })
        return
      }
    }
    const goodsData = this.data.goodsData
    const _this = this

    formData.orderState = 'un_finish'
    formData.goodsTit = []
    formData.goodsImg = []
    formData.guestGender = this.data.gender
    formData.goodsPrice = this.data.totalPrice
    formData.appointTime = this.data.selectDate
    formData.creatTime = this.getCurrentDateTimeInSeconds()
    goodsData.forEach(item => {
      let tit = `${item.goods_tit}-${item.goods_name[item.actIdx]}`
      let img = item.every_path[item.actIdx]
      formData.goodsTit.push(tit)
      formData.goodsImg.push(img)
    })

    this.setData({ guestInfo: formData })

    // 授权订阅消息
    wx.requestSubscribeMessage({
      tmplIds: ['ZpzvwvEpbFKubxwL3bn3vXMxyL5l_II11d2spb_haSM'],
      success(res){
        wx.cloud.callFunction({
          name: 'push_message',
          data: _this.data.guestInfo
        }).then(res => {
          console.log('订阅成功！',res);
          _this.sendMessage()
        })
      }
    })
  },

  sendMessage(){
    // 订单保存
    wx.cloud.callFunction({
      name: 'set_orders_data',
      data: this.data.guestInfo
    }).then(res => {
      if(res.errMsg === "cloud.callFunction:ok"){
        wx.showToast({
          title: '预约成功！',
          icon: 'none',
        })
        this.setData({ payShow: true })
      }
    })
  },
  // 获取当前日期
  getCurrentDateTimeInSeconds() {
    var now = new Date();
    var year = now.getFullYear(); // 年
    var month = now.getMonth() + 1; // 月 (注意JavaScript的月份是从0开始的，需要加1)
    var day = now.getDate(); // 日
    var hours = now.getHours(); // 时
    var minutes = now.getMinutes(); // 分
    var seconds = now.getSeconds(); // 秒
  
    // 格式化输出（可选，如果需要字符串格式）
    var formattedDateTime = `${year}年${month < 10 ? '0' : ''}${month}月${day < 10 ? '0' : ''}${day} ${hours < 10 ? '0' : ''}${hours}:${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
    
    return formattedDateTime;
  },
  // 关闭付款提示
  closeTipsPay(){
    this.setData({ payShow: false })
    wx.navigateBack({
      delta: 1
    })
  },
  /**
   * 页面的初始数据
   */
  data: {
    selectDate: `${date.getFullYear()}-${strmonth}-${strDate}`, // 预约时间
    endDate: `${date.getFullYear()+1}-${strmonth}-${strDate}`, // 最大预约时间
    goodsData: [], // 订单信息
    totalPrice: 0, // 订单总价
    guestInfo: {}, // 拍摄人信息
    gender: '女', // 性别
    payShow: false, // 展示付款提示
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    let price = 0
    app.globalData.settleGoods.forEach(item => {
      price += Number(item.every_price[item.actIdx])
    })
    this.setData({
      totalPrice: price,
      goodsData: app.globalData.settleGoods
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})